/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.foxinline.manager.acao;

import br.com.foxinline.modelo.Endereco;
import br.com.foxinline.modelo.Firma;
import br.com.foxinline.modelo.Pessoa;
import br.com.foxinline.servico.AnexoServico;
import br.com.foxinline.servico.FirmaServico;
import br.com.foxinline.servico.PessoaServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author roniere
 */
@ManagedBean
@ViewScoped
public class ManagerReconhecimentoFirma implements Serializable {

    @EJB
    FirmaServico firmaServico;
    @EJB
    AnexoServico anexoServico;
    @EJB
    PessoaServico pessoaServico;
    private Pessoa pessoa;
    private Endereco endereco;
    private List<Firma> firmas;

    @PostConstruct
    private void init() {
        
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        if (parametros.get("depositante") != null) {
            pessoa = pessoaServico.pesquisar(Long.parseLong(parametros.get("depositante")));
            endereco = pessoa.getEndereco();
            firmaPorPessoa();
        }
    }

    private void firmaPorPessoa() {
        firmas = firmaServico.getFirmaPorPessoa(pessoa);
    }

    public void bloquearFirma(Firma firma) {
        
        if (firma.getBloqueado() == null || !firma.getBloqueado()) {
            firma.setBloqueado(true);
            firma.setDataBloqueado(new Date());
            firma.setUsuarioBloqueou(null);
        }else{
            firma.setBloqueado(false);
        }
        
        firmaServico.atualizar(firma);
        firmaPorPessoa();
        Mensagem.messagemInfo();
    }

    public void excluirFirma(Firma firma) {
        firma.setStatus(false);
        firmaServico.atualizar(firma);
        firmaPorPessoa();
        Mensagem.messagemInfo();
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public List<Firma> getFirmas() {
        return firmas;
    }

    public void setFirmas(List<Firma> firmas) {
        this.firmas = firmas;
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }
}
